from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(被动技能):  # 基础精通
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    学习间隔 = 1
    等级精通 = 110

    关联技能 = ['霸王戟']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


# 霸王戟和战戟猛攻用的都是霸王戟的按键，接在平x后面就是霸王戟，接在技能后面就是战戟猛攻
# 霸王戟TP是基础精通，和战戟猛攻TP不一样
class 技能1(主动技能):
    名称 = '霸王戟'
    所在等级 = 15
    等级上限 = 1
    学习间隔 = 2
    等级精通 = 1
    MP = [3, 35]
    # 接平x第一下
    data0 = [(i) for i in [0, 289.33]]
    hit0 = 1
    # 接平x第二下
    data1 = [(i) for i in [0, 399.60]]
    hit1 = 0
    # 接平x第三下
    data2 = [(i) for i in [0, 429.59]]
    hit2 = 0
    CD = 0.5
    TP成长 = 0.10
    TP上限 = 5

    形态 = ['下斩', '横斩', '强横']

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "下斩":
            self.hit0 = 1
            self.hit1 = 0
            self.hit2 = 0
        if 形态 == "横斩":
            self.hit0 = 0
            self.hit1 = 1
            self.hit2 = 0
        if 形态 == "强横":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 1


class 技能2(被动技能):
    名称 = '战戟精通'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10

    def 物理攻击力倍率进图(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.1 + 0.02 * self.等级, 5)


class 技能3(主动技能):
    名称 = '破军突击'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [10, 115]
    data0 = [(i*1.11) for i in [0, 188, 207, 228, 246, 265, 284, 305, 324, 341, 362, 380, 401, 418, 439, 458, 478, 495, 514, 535, 554, 574, 592, 612, 631, 651, 669, 688, 708, 727, 746, 765, 785, 804, 822, 842,
                                861, 881, 899, 919, 938, 958, 976, 995, 1015, 1034, 1054, 1072, 1092, 1111, 1131, 1149, 1168, 1188, 1207, 1226, 1245, 1265, 1284, 1302, 1322, 1341, 1361, 1379, 1399, 1418, 1438, 1456, 1475, 1495, 1514]]
    hit0 = 3
    data1 = [(i*1.11) for i in [0, 3219, 3546, 3873, 4199, 4525, 4852, 5177, 5505, 5831, 6158, 6484, 6812, 7138, 7465, 7791, 8119, 8445, 8772, 9098, 9426, 9752, 10077, 10404, 10730, 11057, 11384, 11711, 12037, 12364, 12691, 13018, 13344, 13671, 13998, 14325,
                                14650, 14977, 15303, 15629, 15957, 16283, 16610, 16936, 17264, 17590, 17917, 18243, 18571, 18897, 19224, 19549, 19876, 20203, 20530, 20856, 21182, 21509, 21836, 22163, 22489, 22816, 23143, 23470, 23795, 24122, 24448, 24776, 25102, 25429, 25755]]
    hit1 = 1
    CD = 7

    def 等效百分比(self, **argv):
        if self.TP等级 > 0:
            self.hit0 = 5  # TP1时加段数
            self.power1 = 1+(self.TP等级-1) * self.TP成长
            self.power2 = 1+(self.TP等级-1) * self.TP成长
        return super().等效百分比(**argv)


class 技能4(主动技能):
    名称 = '追魂斩'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [15, 300]
    data0 = [(i*1.11) for i in [0, 2238, 2467, 2694, 2921, 3149, 3376, 3602, 3829, 4057, 4284, 4511, 4739, 4965, 5192, 5420, 5647, 5875, 6103, 6329, 6556, 6784, 7011, 7238, 7466, 7692, 7919, 8146, 8374, 8601, 8828, 9054, 9283, 9510, 9738, 9965, 10192,
                                10420, 10646, 10873, 11101, 11328, 11555, 11781, 12009, 12236, 12463, 12692, 12919, 13147, 13373, 13600, 13827, 14055, 14282, 14509, 14735, 14963, 15190, 15417, 15645, 15872, 16101, 16327, 16554, 16781, 17009, 17236, 17462, 17690, 17917]]
    hit0 = 2
    CD = 6
    TP成长 = 0.10
    TP上限 = 7


class 技能5(被动技能):
    名称 = '战戟猛攻'
    是否主动 = 0
    所在等级 = 25
    等级上限 = 30
    学习间隔 = 2
    等级精通 = 20

    data0 = [(i*1.103) for i in [0, 3256, 3650, 4044, 4438, 4831, 5225, 5619, 6013, 6406, 6800, 7194, 7588, 7981, 8375,
                                 8769, 9163, 9556, 9950, 10344, 10737, 11131, 11525, 11919, 12312, 12706, 13100, 13494, 13887, 14281, 14675]]
    hit0 = 1
    CD = 1  # 实际无冷却
    TP成长 = 0.10
    TP上限 = 7

    def 物理攻击力倍率进图(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 20:
            return round(1 + 0.005 * self.等级, 5)
        else:
            return round(1.1 + 0.02 * (self.等级 - 20), 5)


class 技能6(主动技能):
    名称 = '落月斩'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [30, 350]
    data0 = [(i*1.105) for i in [0, 6128, 6750, 7371, 7994, 8615, 9237, 9858, 10481, 11102, 11724, 12346, 12968, 13589, 14212, 14833, 15455, 16076, 16699, 17320, 17942, 18563, 19186, 19807, 20429, 21051, 21673, 22294, 22917, 23538, 24160, 24781, 25404, 26025, 26647,
                                 27268, 27891, 28512, 29134, 29755, 30378, 30999, 31621, 32243, 32865, 33486, 34109, 34730, 35352, 35973, 36596, 37217, 37839, 38460, 39083, 39704, 40326, 40948, 41570, 42191, 42814, 43435, 44057, 44678, 45301, 45922, 46544, 47165, 47788, 48409, 49031]]
    hit0 = 1
    CD = 7
    TP成长 = 0.10
    TP上限 = 7


class 技能7(主动技能):
    名称 = '冷血突刺'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 刺击攻击力：<data0>%
    data0 = [(i*1.116) for i in [0, 7220, 7952, 8686, 9418, 10150, 10882, 11616, 12348, 13080, 13812, 14546, 15278, 16010, 16743, 17477, 18208, 18940, 19673, 20407, 21138, 21870, 22604, 23337, 24069, 24802, 25534, 26267, 26999, 27732, 28464, 29197, 29929, 30662, 31394,
                                 32127, 32860, 33592, 34324, 35057, 35790, 36522, 37254, 37987, 38720, 39452, 40184, 40916, 41650, 42382, 43114, 43849, 44580, 45312, 46044, 46779, 47511, 48242, 48974, 49709, 50441, 51173, 51906, 52639, 53371, 54103, 54836, 55569, 56301, 57033, 57766]]
    hit0 = 1
    # 每1次旋风打击的攻击力：<data1>%
    data1 = [(i*1.116) for i in [0, 801, 883, 964, 1045, 1127, 1208, 1289, 1371, 1452, 1533, 1615, 1696, 1778, 1859, 1940, 2024, 2103, 2184, 2268, 2348, 2429, 2512, 2592, 2675, 2755, 2836, 2919, 2999, 3080, 3162, 3243, 3324, 3406,
                                 3487, 3570, 3650, 3731, 3813, 3894, 3975, 4057, 4138, 4219, 4301, 4382, 4464, 4545, 4626, 4708, 4789, 4870, 4954, 5033, 5114, 5198, 5279, 5361, 5442, 5522, 5605, 5686, 5766, 5849, 5930, 6010, 6093, 6173, 6256, 6337, 6417]]
    hit1 = 6
    CD = 16
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [100, 920]
    无色消耗 = 1

    def 装备护石(self):
        self.倍率 *= 1.29


class 技能8(主动技能):
    名称 = '破灭斩'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [(i*1.12) for i in [0, 9947, 10957, 11966, 12976, 13985, 14995, 16003, 17013, 18021, 19031, 20041, 21050, 22060, 23068, 24078, 25086, 26096, 27105, 28115, 29125, 30133, 31143, 32151, 33161, 34169, 35179, 36188, 37198, 38208, 39216, 40226, 41234, 42244, 43253,
                                44263, 45272, 46282, 47291, 48299, 49309, 50318, 51328, 52337, 53347, 54354, 55364, 56374, 57383, 58393, 59402, 60412, 61419, 62429, 63438, 64448, 65458, 66467, 67477, 68485, 69494, 70503, 71513, 72522, 73532, 74542, 75550, 76560, 77568, 78578, 79586]]
    hit0 = 1
    CD = 14
    TP成长 = 0.10
    TP上限 = 5

    MP = [60, 850]
    无色消耗 = 1


class 技能9(主动技能):
    名称 = '夺命乱舞'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 每1次横斩的攻击力：<data0>%
    data0 = [(i*1.12) for i in [0, 824, 908, 992, 1075, 1159, 1241, 1325, 1409, 1493, 1577, 1660, 1744, 1827, 1911, 1995, 2078, 2163, 2247, 2330, 2413, 2496, 2580, 2663, 2747, 2832, 2915, 2999, 3083, 3166, 3250, 3333, 3416, 3500,
                                3584, 3668, 3751, 3835, 3918, 4002, 4086, 4169, 4254, 4338, 4421, 4504, 4587, 4671, 4754, 4838, 4923, 5006, 5090, 5174, 5257, 5341, 5424, 5508, 5593, 5675, 5759, 5842, 5926, 6009, 6093, 6177, 6262, 6345, 6429, 6512, 6596]]
    hit0 = 12
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.12) for i in [0, 4239, 4669, 5100, 5530, 5961, 6391, 6821, 7252, 7680, 8111, 8542, 8971, 9402, 9833, 10262, 10693, 11121, 11552, 11983, 12412, 12843, 13273, 13704, 14134, 14564, 14995, 15424, 15854, 16285, 16714, 17145, 17576, 18005, 18436,
                                18864, 19295, 19726, 20155, 20586, 21017, 21447, 21877, 22307, 22738, 23167, 23597, 24028, 24458, 24888, 25319, 25748, 26179, 26610, 27038, 27469, 27898, 28329, 28760, 29190, 29620, 30051, 30481, 30912, 31340, 31771, 32201, 32631, 33062, 33493, 33922]]
    hit1 = 1
    CD = 18
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [150, 1260]
    无色消耗 = 1

    def 装备护石(self):
        self.hit0 = 4
        self.power0 = 3
        self.power1 = 2.2


class 技能10(主动技能):
    名称 = '横扫八荒'
    备注 = '满'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 每1次旋转横斩的攻击力：<data0>%
    data0 = [(i*1.104) for i in [0, 1860, 2048, 2236, 2425, 2614, 2802, 2990, 3180, 3369, 3557, 3745, 3934, 4122, 4312, 4500, 4689, 4877, 5066, 5254, 5443, 5631, 5821, 6009, 6198, 6386, 6575, 6765, 6953, 7141, 7329, 7519, 7707, 7895, 8083, 8274,
                                 8462, 8650, 8838, 9028, 9216, 9404, 9593, 9783, 9971, 10159, 10347, 10538, 10726, 10914, 11103, 11292, 11480, 11668, 11858, 12047, 12235, 12423, 12612, 12800, 12990, 13178, 13367, 13555, 13744, 13932, 14121, 14309, 14499, 14687, 14876]]
    hit0 = 9
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.104) for i in [0, 9828, 10825, 11823, 12819, 13817, 14815, 15812, 16809, 17806, 18804, 19800, 20798, 21794, 22791, 23788, 24786, 25782, 26780, 27777, 28774, 29771, 30769, 31767, 32763, 33760, 34758, 35754, 36752, 37750, 38746, 39742, 40740, 41736, 42734,
                                 43732, 44729, 45726, 46723, 47721, 48717, 49715, 50712, 51709, 52706, 53704, 54702, 55698, 56696, 57693, 58688, 59686, 60683, 61680, 62677, 63675, 64671, 65669, 66667, 67663, 68661, 69658, 70656, 71652, 72650, 73647, 74644, 75641, 76639, 77634, 78632]]
    hit1 = 1
    CD = 40
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [222, 2225]
    无色消耗 = 2

    def 装备护石(self):
        self.hit0 = 18
        self.power0 = 0.5
        self.power1 = 1.44*1.33


class 技能11(被动技能):
    名称 = '战戟之魂'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能12(主动技能):
    名称 = '千魂弑'
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 下劈攻击力：<data0>%
    data0 = [(i*1.109) for i in [0, 14557, 17931, 21307, 24682, 28058, 31434, 34809, 38185, 41559, 44935, 48311, 51686, 55062, 58438, 61812, 65188, 68563, 71939, 75315, 78690, 82066, 85441, 88816, 92192, 95568, 98943, 102319, 105694, 109069, 112445, 115820, 119196, 122572, 125947, 129322,
                                 132697, 136073, 139449, 142824, 146200, 149576, 152950, 156326, 159701, 163077, 166453, 169829, 173205, 176580, 179955, 183331, 186707, 190082, 193458, 196833, 200208, 203584, 206959, 210335, 213711, 217086, 220462, 223836, 227212, 230588, 233963, 237339, 240715, 244089, 247465]]
    hit0 = 1
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.109) for i in [0, 58226, 71728, 85230, 98732, 112234, 125735, 139239, 152740, 166243, 179744, 193246, 206748, 220250, 233752, 247254, 260755, 274258, 287759, 301262, 314763, 328265, 341767, 355269, 368771, 382273, 395774, 409278, 422779, 436282, 449783, 463286, 476787, 490289, 503791,
                                 517293, 530795, 544297, 557798, 571301, 584802, 598305, 611806, 625307, 638810, 652311, 665814, 679317, 692819, 706321, 719822, 733325, 746826, 760329, 773830, 787331, 800834, 814335, 827838, 841339, 854841, 868343, 881845, 895347, 908849, 922350, 935853, 949355, 962858, 976359, 989861]]
    hit1 = 1
    CD = 145

    MP = [980, 8232]
    无色消耗 = 5


class 技能13(主动技能):
    名称 = '长虹贯日'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 刺击攻击力：<data0>%
    data0 = [(i*1.113) for i in [0, 7437, 8192, 8947, 9702, 10456, 11210, 11965, 12719, 13475, 14229, 14982, 15738, 16492, 17247, 18002, 18757, 19510, 20265, 21020, 21774, 22530, 23284, 24037, 24793, 25547, 26302, 27057, 27810, 28565, 29320, 30075, 30829, 31585, 32338,
                                 33092, 33848, 34602, 35357, 36111, 36866, 37621, 38376, 39130, 39886, 40639, 41393, 42149, 42903, 43658, 44413, 45166, 45921, 46676, 47431, 48185, 48939, 49694, 50448, 51204, 51958, 52711, 53467, 54221, 54976, 55731, 56486, 57239, 57995, 58749, 59503]]
    hit0 = 1
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.113) for i in [0, 17355, 19115, 20876, 22638, 24398, 26158, 27918, 29680, 31440, 33202, 34962, 36722, 38484, 40244, 42004, 43764, 45526, 47287, 49047, 50808, 52568, 54329, 56091, 57851, 59611, 61371, 63133, 64893, 66655, 68415, 70175, 71937, 73697, 75458, 77217,
                                 78979, 80740, 82500, 84262, 86021, 87782, 89544, 91304, 93066, 94825, 96586, 98346, 100108, 101869, 103628, 105390, 107150, 108911, 110673, 112432, 114193, 115954, 117715, 119475, 121235, 122997, 124757, 126519, 128279, 130039, 131799, 133561, 135322, 137081, 138843]]
    hit1 = 1
    CD = 25
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [250, 1000]
    无色消耗 = 1

    def 装备护石(self):
        self.hit0 = 0
        self.power1 = 1.89
        self.CDR *= 0.9


class 技能14(主动技能):
    名称 = '穿云裂地斩'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 下劈攻击力：<data0>%
    data0 = [(i*1.116) for i in [0, 47734, 52578, 57419, 62263, 67104, 71948, 76791, 81633, 86476, 91319, 96162, 101004, 105847, 110689, 115533, 120374, 125218, 130059, 134903, 139746, 144588, 149432, 154273, 159117, 163960, 168802, 173645, 178488, 183330, 188173, 193015, 197858, 202701, 207543,
                                 212387, 217228, 222072, 226915, 231757, 236600, 241442, 246285, 251129, 255970, 260814, 265657, 270499, 275342, 280184, 285027, 289870, 294712, 299555, 304397, 309240, 314084, 318926, 323769, 328613, 333454, 338298, 343139, 347983, 352824, 357668, 362510, 367353, 372195, 377039, 381881]]
    hit0 = 1
    # 冲击波攻击力：<data1>%
    data1 = [(i*1.116) for i in [0, 42706, 47040, 51372, 55705, 60035, 64369, 68702, 73034, 77367, 81700, 86032, 90366, 94699, 99030, 103363, 107695, 112028, 116361, 120693, 125026, 129358, 133692, 138024, 142356, 146689, 151021, 155354, 159687, 164019, 168352, 172683, 177016, 181350, 185682, 190015,
                                 194348, 198680, 203013, 207345, 211677, 216010, 220342, 224676, 229008, 233341, 237674, 242006, 246339, 250670, 255003, 259337, 263669, 268002, 272335, 276667, 281000, 285331, 289664, 293997, 298329, 302663, 306996, 311328, 315661, 319993, 324325, 328658, 332990, 337323, 341655]]
    hit1 = 0
    CD = 50
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [600, 1480]
    无色消耗 = 2

    形态 = ["直击", "冲击"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "直击":
            self.hit0 = 1
            self.hit1 = 0
        if 形态 == "冲击":
            self.hit0 = 0
            self.hit1 = 1

    def 装备护石(self):
        self.倍率 *= 1.30


class 技能15(主动技能):
    名称 = '破灭轮回刺'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 旋转斩击攻击力：<data0>%
    data0 = [(i*1.116) for i in [0, 6195, 6824, 7454, 8081, 8710, 9338, 9967, 10596, 11224, 11853, 12482, 13110, 13739, 14366, 14996, 15625, 16252, 16882, 17511, 18138, 18768, 19395, 20024, 20654, 21281, 21910, 22540, 23167, 23796, 24425, 25053, 25682, 26311, 26939,
                                 27568, 28197, 28825, 29453, 30082, 30711, 31339, 31968, 32597, 33224, 33854, 34483, 35110, 35740, 36368, 36996, 37626, 38254, 38882, 39512, 40140, 40768, 41396, 42026, 42654, 43282, 43912, 44540, 45168, 45797, 46425, 47054, 47683, 48311, 48939, 49569]]
    hit0 = 2
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.116) for i in [0, 49569, 54597, 59627, 64656, 69684, 74713, 79742, 84770, 89799, 94827, 99856, 104885, 109913, 114943, 119972, 125000, 130029, 135058, 140086, 145115, 150143, 155172, 160202, 165230, 170259, 175288, 180316, 185345, 190373, 195402, 200431, 205459, 210489, 215518,
                                 220546, 225575, 230604, 235632, 240661, 245692, 250720, 255749, 260777, 265806, 270835, 275863, 280892, 285921, 290949, 295979, 301007, 306036, 311065, 316093, 321122, 326151, 331179, 336208, 341238, 346266, 351295, 356323, 361352, 366381, 371409, 376438, 381467, 386495, 391524, 396552]]
    hit1 = 1
    CD = 40
    是否有护石 = 1

    MP = [580, 4500]
    无色消耗 = 3

    def 装备护石(self):
        self.倍率 *= 1.33


class 技能16(被动技能):
    名称 = '战神之力'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.23 + 0.02 * self.等级, 5)


class 技能17(主动技能):
    名称 = '断魂裂岩斩'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 斩击攻击力：<data0>%
    data0 = [(i*1.103) for i in [0, 55026, 60607, 66190, 71774, 77354, 82938, 88521, 94102, 99685, 105267, 110851, 116433, 122015, 127598, 133179, 138762, 144345, 149926, 155509, 161091, 166673, 172257, 177839, 183421, 189003, 194586, 200168, 205750, 211334, 216914, 222498, 228081, 233662, 239245,
                                 244827, 250409, 255993, 261575, 267157, 272739, 278322, 283905, 289486, 295069, 300650, 306233, 311817, 317399, 322981, 328563, 334146, 339728, 345310, 350894, 356474, 362058, 367641, 373222, 378805, 384388, 389969, 395553, 401135, 406717, 412300, 417882, 423464, 429046, 434629, 440211]]
    hit0 = 1
    # 多段打击攻击力：<data1>%
    data1 = [(i*1.103) for i in [0, 1375, 1515, 1654, 1793, 1933, 2073, 2213, 2352, 2492, 2630, 2770, 2909, 3051, 3189, 3329, 3468, 3608, 3747, 3886, 4027, 4166, 4306, 4445, 4585, 4724, 4864, 5004, 5144, 5283, 5423, 5561, 5702, 5840, 5980,
                                 6120, 6259, 6399, 6538, 6678, 6817, 6958, 7097, 7237, 7376, 7516, 7655, 7794, 7935, 8074, 8214, 8353, 8493, 8631, 8771, 8911, 9052, 9190, 9330, 9469, 9609, 9748, 9888, 10028, 10167, 10307, 10446, 10586, 10725, 10866, 11005]]
    hit1 = 10
    CD = 45
    是否有护石 = 1

    MP = [800, 6000]
    无色消耗 = 5

    def 装备护石(self):
        self.倍率 *= 1.35


class 技能18(主动技能):
    名称 = '血战天狱'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 第1~4击攻击力：<data0>%
    data0 = [(i*1.116) for i in [0, 22548, 27776, 33005, 38233, 43462, 48691, 53919, 59148, 64376, 69605, 74833, 80062, 85291, 90519, 95748, 100976, 106205, 111434, 116662, 121891, 127119, 132347, 137575, 142804, 148032, 153261, 158490, 163718, 168947, 174175, 179404, 184633, 189861, 195090, 200320,
                                 205548, 210777, 216005, 221234, 226463, 231691, 236920, 242148, 247377, 252606, 257834, 263063, 268291, 273520, 278748, 283977, 289206, 294434, 299663, 304891, 310119, 315347, 320576, 325805, 331033, 336262, 341490, 346719, 351947, 357176, 362405, 367633, 372862, 378090, 383319]]
    hit0 = 4
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.116) for i in [0, 90193, 111107, 132022, 152936, 173849, 194763, 215678, 236592, 257506, 278421, 299335, 320251, 341164, 362078, 382993, 403907, 424821, 445736, 466650, 487564, 508478, 529392, 550308, 571222, 592136, 613051, 633965, 654879, 675792, 696707, 717621, 738535, 759450, 780364, 801280,
                                 822194, 843109, 864022, 884936, 905850, 926765, 947679, 968593, 989508, 1010421, 1031337, 1052251, 1073165, 1094080, 1114994, 1135908, 1156823, 1177737, 1198650, 1219564, 1240479, 1261393, 1282309, 1303223, 1324138, 1345052, 1365965, 1386879, 1407794, 1428708, 1449622, 1470537, 1491451, 1512367, 1533281]]
    hit1 = 1
    CD = 180

    MP = [2500, 5000]
    无色消耗 = 10


class 技能19(主动技能):
    名称 = '镇狱裂地枪'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.103) for i in [0, 43523, 47939, 52354, 56770, 61186, 65601, 70017, 74432, 78848, 83263, 87679, 92095, 96509, 100925, 105340, 109756, 114172, 118587, 123003, 127418, 131834, 136250, 140665, 145081, 149495, 153911, 158327, 162742, 167158, 171573, 175989, 180404, 184820, 189236,
                                    193651, 198067, 202481, 206897, 211313, 215728, 220144, 224559, 228975, 233391, 237806, 242222, 246636, 251052, 255469, 259883, 264299, 268714, 273130, 277545, 281961, 286377, 290792, 295208, 299622, 304038, 308454, 312869, 317285, 321700, 326116, 330532, 334947, 339363, 343778, 348194]]
    hit0 = 1
    data1 = [int(i*1.103) for i in [0, 101556, 111858, 122162, 132464, 142768, 153070, 163373, 173676, 183979, 194281, 204585, 214887, 225191, 235493, 245795, 256099, 266401, 276705, 287007, 297310, 307613, 317916, 328218, 338522, 348824, 359128, 369430, 379732, 390036, 400338, 410641, 420944, 431247,
                                    441550, 451853, 462155, 472459, 482761, 493064, 503367, 513670, 523973, 534276, 544578, 554882, 565184, 575486, 585790, 596092, 606396, 616698, 627001, 637304, 647607, 657909, 668213, 678515, 688819, 699121, 709423, 719727, 730029, 740333, 750635, 760938, 771241, 781544, 791846, 802150, 812452]]
    hit1 = 1
    CD = 60.0

    MP = [960, 7200]
    无色消耗 = 7


class 技能20(被动技能):
    名称 = '灭天之魂'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能21(主动技能):
    名称 = '天劫·斗灭乾坤'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.104) for i in [0, 497426, 612771, 728115, 843461, 958806, 1074151, 1189498, 1304842, 1420187, 1535532, 1650877, 1766223, 1881568, 1996912, 2112257, 2227604, 2342949, 2458294, 2573639, 2688983, 2804329, 2919674, 3035019, 3150366, 3265711, 3381055, 3496400, 3611745, 3727091, 3842436, 3957781, 4073125, 4188472, 4303817,
                                    4419162, 4534507, 4649851, 4765197, 4880542, 4995887, 5111234, 5226579, 5341923, 5457268, 5572614, 5687959, 5803304, 5918648, 6033993, 6149340, 6264685, 6380030, 6495374, 6610720, 6726065, 6841410, 6956755, 7072102, 7187446, 7302791, 7418136, 7533482, 7648827, 7764172, 7879516, 7994863, 8110208, 8225553, 8340898, 8456244]]
    hit0 = 1
    CD = 290.0

    MP = [980, 8232]
    无色消耗 = 15


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'vanguard'
        self.名称 = '千魂·征战者'
        self.角色 = '魔枪士'
        self.角色类型 = '输出'
        self.职业 = '征战者'
        # 用来筛CP武器的
        self.武器选项 = ['战戟']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '战戟'
        self.防具类型 = '重甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.80

        super().__init__()
